home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
p_man
/
cat2
/
standard
/
accept.z
/
accept
Wrap
Text File
|
1998-10-20
|
5KB
|
133 lines
AAAACCCCCCCCEEEEPPPPTTTT((((2222)))) AAAACCCCCCCCEEEEPPPPTTTT((((2222))))
NNNNAAAAMMMMEEEE
accept - accept a connection on a socket
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttyyyyppppeeeessss....hhhh>>>>
####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ssssoooocccckkkkeeeetttt....hhhh>>>>
iiiinnnntttt aaaacccccccceeeepppptttt ((((iiiinnnntttt ssss,,,, ssssttttrrrruuuucccctttt ssssoooocccckkkkaaaaddddddddrrrr ****aaaaddddddddrrrr,,,, iiiinnnntttt ****aaaaddddddddrrrrlllleeeennnn))));;;;
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
The argument _s is a socket that has been created with _s_o_c_k_e_t(2), bound to
an address with _b_i_n_d(2), and is listening for connections after a
_l_i_s_t_e_n(2). _A_c_c_e_p_t extracts the first connection on the queue of pending
connections, creates a new socket with the same properties of _s and
allocates a new file descriptor for the socket. If no pending
connections are present on the queue, and the socket is not marked as
non-blocking, _a_c_c_e_p_t blocks the caller until a connection is present. If
the socket is marked non-blocking and no pending connections are present
on the queue, _a_c_c_e_p_t returns an error as described below. The accepted
socket may not be used to accept more connections. The original socket _s
remains open.
If _a_d_d_r is non-zero, it is a result parameter that is filled in with the
address of the connecting entity, as known to the communications layer.
The exact format of the _a_d_d_r parameter is determined by the domain in
which the communication is occurring. The _a_d_d_r_l_e_n is a value-result
parameter. It should initially contain the amount of space pointed to by
_a_d_d_r; on return it will contain the actual length (in bytes) of the
address returned. If _a_d_d_r is zero, _a_d_d_r_l_e_n is ignored.
This call is used with connection-based socket types, currently with
SOCK_STREAM.
It is possible to _s_e_l_e_c_t(2) a socket for the purposes of doing an _a_c_c_e_p_t
by selecting it for read.
RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEE
The call returns -1 on error. If it succeeds, it returns a non-negative
integer that is a descriptor for the accepted socket.
EEEERRRRRRRROOOORRRRSSSS
The _a_c_c_e_p_t will fail if:
[EBADF] The descriptor is invalid.
[ENOTSOCK] The descriptor references a file, not a socket.
[EOPNOTSUPP] The referenced socket is not of type SOCK_STREAM.
[EFAULT] The _a_d_d_r or _a_d_d_r_l_e_n parameter is not in a writable
part of the user address space.
PPPPaaaaggggeeee 1111
AAAACCCCCCCCEEEEPPPPTTTT((((2222)))) AAAACCCCCCCCEEEEPPPPTTTT((((2222))))
[EWOULDBLOCK] The socket is marked non-blocking and no connections
are present to be accepted.
[EMFILE] The per-process descriptor table is full.
[ENFILE] The system file table is full.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
bind(2), connect(2), listen(2), select(2), socket(2)
NNNNOOOOTTTTEEEESSSS
ABI-compliant versions of the above call can be obtained from
_l_i_b_s_o_c_k_e_t._s_o.
When used with a socket of type AF_UNIX, this call does not return a
valid remote address, unless the remote end was explicitly bound to a
pathname.
PPPPaaaaggggeeee 2222